package com.foxitcloud.util;

import java.io.IOException;
import java.util.HashMap;
import java.util.Iterator;

import org.codehaus.jackson.JsonProcessingException;
import org.codehaus.jackson.map.ObjectMapper;

import com.alibaba.fastjson.JSONObject;

/**
 * @Description 使用jackson定义了一个将对象转化成json的工具类
 * @author xxu
 * @CreateDate 2015年1月7日 下午4:45:14
 */
public class JsonUtil
{
	private static ObjectMapper objectMapper = new ObjectMapper();

	public static String toJson( Object o )
	{
		try
		{
			return objectMapper.writeValueAsString( o );
		}
		catch ( JsonProcessingException e )
		{
			e.printStackTrace();
		}
		catch ( IOException e )
		{
			e.printStackTrace();
		}
		return "";
	}

	/**
	 * 将json格式的字符串解析成Map对象
	 * @param object
	 * @return
	 * @return HashMap<String,Object>
	 */
	public static HashMap< String, Object > toHashMap( String object )
	{
		HashMap< String, Object > data = new HashMap< String, Object >();
		// 将json字符串转换成jsonObject
		JSONObject jsonObject = JSONObject.parseObject( object );
		Iterator< String > it = jsonObject.keySet().iterator();
		// 遍历jsonObject数据，添加到Map对象
		while ( it.hasNext() )
		{
			String key = String.valueOf( it.next() );
			Object value = jsonObject.get( key );
			data.put( key, value );
		}
		return data;
	}
	
	/**
	 * JSON转对象
	 * 
	 * @param json
	 * @param clazz
	 * @return
	 */
	public static <T> Object toBean( String json, Class< T > clazz )
	{
		return JSONObject.parseObject( json, clazz );
	}
	
	
	
}